package controller;

import entity.IdUtil;
import entity.Users;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;

public class Uploads {//处理上传图片公共代码块
    public String uploads(HttpServletRequest req,MultipartFile file,String imgPath) throws IOException {
        //当前项目名称（push）
        String paths = req.getContextPath();
        //项目访问地址（http://localhost:8080/push）
        String basePath = req.getScheme()+"://"+req.getServerName()+":"+req.getServerPort()+paths+"/";
        //System.out.print("basePath:"+basePath);

        //获取图片上传到服务器文件夹images的路径
        String path=req.getServletContext().getRealPath("/"+imgPath);
        //获取上传文件原名称
        String originalFilename=file.getOriginalFilename();
        //System.out.print(originalFilename);
        //获取文件扩展名 /jpg
        String tName=originalFilename.substring(originalFilename.lastIndexOf("."));
        //用时间轴做图片名称，加一个同步在同一时间提交的文件不会冲突(重复)
        //自定义一个单例模式的工具类(IdUtil)，里面使时间轴同步
        String newName= IdUtil.getIdUtil().getTime()+tName;//图片新名称
        File f1=new File(path+"/"+newName);
        if(!f1.exists()){
            f1.mkdirs();
        }
        file.transferTo(f1);//把图片保存到服务器中的images文件中
        //加上访问路径，方便前端展示图片(当前项目访问路径+文件存储路径)
        //返回图片在服务器中的完整路径
        return basePath+imgPath+"/"+newName;
    }

}
